package com.young.ums.service;

import com.young.ums.model.AuthorityParameter;
import com.young.ums.model.Dept;

import java.util.List;

/**
 * 数据权限服务
 * @author imrookie
 * @date 2018/10/22
 */
public interface IDataAuthService {

    /**
     * 处理权限参数,会根据登录用户id设置管理范围
     * (推荐service层使用)
     * @param authorityParameter 待处理权限参数对象
     */
    void handleAuthorityParameter(AuthorityParameter authorityParameter);

    /**
     * 查询用户管理范围的机构节点（可能是单位，也可能是部门，或者是其他）
     * 用户能够管理哪个机构节点内的数据
     * @param userId 用户id
     * @return
     */
    List<Dept> getManageRangeOrg(String userId);

    /**
     * 查询用户管理范围的单位节点（type=COMPANY）
     * 用户能够管理哪个单位的数据
     * @param userId 用户id
     * @return
     */
    List<Dept> getManageRangeCompany(String userId);

    /**
     * 查询用户管理范围的部门节点（type=DEPT）
     * 用户能够管理哪些部门的数据
     * @param userId 用户id
     * @return
     */
    List<Dept> getManageRangeDept(String userId);

}
